﻿using System.Collections.Generic;
using System.Xml;
using Ro.Common.RoArgs;

namespace Ro.Common.RoInterface.UserType
{
    /// <summary>
    /// Node.Name 为TestCase
    /// </summary>
    public class TestcaseInfo
    {
        /// <summary>
        /// 用例名称
        /// </summary>
        public string TestCaseId { get; set; }


        /// <summary>
        /// 用例描述
        /// </summary>
        public Annotation TestCaseAnnotation { get; set; }


        /// <summary>
        /// 用例步骤集合队列
        /// </summary>
        public Queue<XmlNode> TestSteps { get; set; }
    }


    /// <summary>
    /// 迭代测试使用的自定义类
    /// </summary>
    public class IterationInfo
    {
        /// <summary>
        /// 需要使用的IterationList
        /// </summary>
        public IterationList IterationList { get; set; }

        /// <summary>
        /// 循环测试的步骤
        /// <para>包含Macro和普通TestCase</para>
        /// </summary>
        public Queue<XmlNode> RepeatSteps { get; set; }
    }


    /// <summary>
    /// 循环测试使用的自定义类
    /// </summary>
    public class RepeatInfo
    {

        /// <summary>
        /// 循环次数
        /// </summary>
        public int Counter { get; set; }

        /// <summary>
        /// 循环测试的步骤
        /// <para>包含Macro和普通TestCase</para>
        /// </summary>
        public Queue<XmlNode> RepeatSteps { get; set; }
    }
}

/*###################################################################################################
 * 子集
 ###################################################################################################*/

/// <summary>
/// 需要使用的IterationList
/// </summary>
public class IterationList
{
    /// <summary>
    /// 后续步骤中，需要用到的参数，优先给定的一个ID使用
    /// </summary>
    public string Id { get; set; }

    /// <summary>
    /// 使用的List的路径
    /// <para>${tcc名.ID名}</para>
    /// <para>反馈回一个完整的ListItems队列，通过队列中的顺序依次运行</para>
    /// </summary>
    public Queue<string> UseListItems { get; set; }
}
